abrir o menu fechar menu

Observables

Os observables são uma das principais características do Angular para lidar com eventos assíncronos. Eles são objetos que emitem notificações ou eventos ao longo do tempo e podem ser usados para lidar com operações assíncronas, como chamadas de API, interações com bancos de dados e eventos de entrada do usuário.

Os observables são uma implementação da especificação ECMAScript Observable e são suportados nativamente pelo JavaScript a partir da versão ES2015. No Angular, os observables são amplamente utilizados nos serviços, onde eles são usados para enviar e receber dados de forma assíncrona.

A principal vantagem dos observables é que eles permitem lidar com operações assíncronas de forma mais elegante e segura do que as chamadas de retorno tradicionais. Em vez de passar uma função de retorno como argumento para uma operação assíncrona, o observável é retornado pela operação e pode ser inscrito por um ou mais observadores para receber notificações à medida que os dados são produzidos.

Por exemplo, considere a seguinte função que retorna um observable para buscar dados de um servidor remoto:


    import { Observable } from 'rxjs';

    function buscarDados(): Observable<any> {
        // código para buscar dados do servidor
      }              

Essa função retorna um observable que pode ser inscrito por um ou mais observadores para receber notificações à medida que os dados são recebidos do servidor. Para inscrever um observador em um observable, podemos usar o método subscribe():


    buscarDados().subscribe(
        dados => console.log(dados),
        erro => console.error(erro),
        () => console.log('Busca de dados finalizada')
      );              

Nesse exemplo, estamos inscrevendo um observador no observable retornado pela função buscarDados(). O observador recebe três funções de retorno de chamada: uma função para lidar com os dados recebidos, uma função para lidar com erros e uma função para lidar com a conclusão da operação.

Além disso, o Angular também oferece várias operações para manipular observables, como a filtragem, mapeamento e combinação de observables. Essas operações podem ser usadas para transformar e combinar observables para atender às necessidades específicas da aplicação.